--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
electron/loading.html HEAD (b89dc9e6) Text, 25.00 KB
Tb4b4b4<Tff7b72html Te6edf3langTff7b72=Ta5d6ff"en"Tb4b4b4>
Tb4b4b4<Tff7b72headTb4b4b4>
Tb4b4b4<Tff7b72meta Te6edf3charsetTff7b72=Ta5d6ff"UTF-8" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72meta
Te6edf3http-equivTff7b72=Ta5d6ff"Content-Security-Policy"
Te6edf3contentTff7b72=Ta5d6ff"default-src 'self'; script-src 'self' 'unsafe-inline' 'wasm-unsafe-eval' blob:; style-src 'self' 'unsafe-inline'; img-src 'self' data:; connect-src 'self' http://127.0.0.1:9337 https://127.0.0.1:9337 http://localhost:9337 https://localhost:9337;"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72meta Te6edf3http-equivTff7b72=Ta5d6ff"X-UA-Compatible" Te6edf3contentTff7b72=Ta5d6ff"IE=edge" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72meta Te6edf3nameTff7b72=Ta5d6ff"viewport" Te6edf3contentTff7b72=Ta5d6ff"width=device-width, initial-scale=1, maximum-scale=1" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72meta Te6edf3nameTff7b72=Ta5d6ff"color-scheme" Te6edf3contentTff7b72=Ta5d6ff"light dark" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72titleTb4b4b4>MeshChatXTb4b4b4<Tb4b4b4/Tff7b72titleTb4b4b4>
Tb4b4b4<Tff7b72script Te6edf3srcTff7b72=Ta5d6ff"./assets/js/tailwindcss/tailwind-v3.4.3-forms-v0.5.7.js"Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72scriptTb4b4b4>
Tb4b4b4<Tff7b72styleTb4b4b4>
Tb4b4b4@Tff7b72keyframes Tff7b72meshchatx-indeterminate Tb4b4b4{
Tff7b720Tff7b72% Tb4b4b4{
Tff7b72transformTb4b4b4: Tffa657translateXTb4b4b4(T79c0ff-100Tffa657%Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72100Tff7b72% Tb4b4b4{
Tff7b72transformTb4b4b4: Tffa657translateXTb4b4b4(T79c0ff350Tffa657%Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4.T56d364meshchatx-bar Tb4b4b4{
Tff7b72animationTb4b4b4: Te6edf3meshchatx-indeterminate T79c0ff1.4Tffa657s Tff7b72ease-in-out Tff7b72infiniteTb4b4b4;
Tb4b4b4}
Tb4b4b4<Tb4b4b4/Tff7b72styleTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72headTb4b4b4>
Tb4b4b4<Tff7b72body
Te6edf3classTff7b72=Ta5d6ff"min-h-screen antialiased bg-gradient-to-b from-slate-100 to-slate-200 text-slate-800 dark:from-zinc-950 dark:to-zinc-900 dark:text-zinc-100"
Tb4b4b4>
Tb4b4b4<Tff7b72main Te6edf3classTff7b72=Ta5d6ff"flex min-h-screen items-center justify-center px-4 py-10 sm:px-6"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"w-full max-w-sm"Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"overflow-hidden rounded-2xl border border-slate-200/80 bg-white/90 shadow-lg shadow-slate-200/50 backdrop-blur-sm dark:border-zinc-700/80 dark:bg-zinc-900/90 dark:shadow-black/40"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"px-6 pt-8 pb-2 text-center"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"mx-auto mb-4 flex h-20 w-20 items-center justify-center overflow-visible"Tb4b4b4>
Tb4b4b4<Tff7b72img Te6edf3classTff7b72=Ta5d6ff"h-14 w-14 object-contain" Te6edf3srcTff7b72=Ta5d6ff"./assets/images/logo.png" Te6edf3altTff7b72=Ta5d6ff"" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72h1 Te6edf3classTff7b72=Ta5d6ff"text-xl font-semibold tracking-tight text-slate-900 dark:text-white"Tb4b4b4>MeshChatXTb4b4b4<Tb4b4b4/Tff7b72h1Tb4b4b4>
Tb4b4b4<Tff7b72p Te6edf3idTff7b72=Ta5d6ff"status-line" Te6edf3classTff7b72=Ta5d6ff"mt-2 text-sm leading-relaxed text-slate-600 dark:text-zinc-400"Tb4b4b4>
Starting…
Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"px-6 pb-6"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"h-1 w-full overflow-hidden rounded-full bg-slate-200 dark:bg-zinc-800"Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"meshchatx-bar h-full w-1/3 rounded-full bg-blue-600 dark:bg-blue-500"
Te6edf3aria-hiddenTff7b72=Ta5d6ff"true"
Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72p
Te6edf3idTff7b72=Ta5d6ff"attempt-hint"
Te6edf3classTff7b72=Ta5d6ff"mt-3 min-h-[1.25rem] text-center text-xs text-slate-500 dark:text-zinc-500"
Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tff7b72p
Te6edf3idTff7b72=Ta5d6ff"connection-notice"
Te6edf3classTff7b72=Ta5d6ff"mt-2 min-h-[2rem] text-center text-xs leading-relaxed text-amber-700 dark:text-amber-300"
Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3idTff7b72=Ta5d6ff"startup-diagnostics"
Te6edf3classTff7b72=Ta5d6ff"mt-3 hidden rounded-xl border border-red-200/80 bg-red-50/70 p-3 text-left dark:border-red-900/50 dark:bg-red-950/30"
Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3idTff7b72=Ta5d6ff"startup-diagnosis-summary"
Te6edf3classTff7b72=Ta5d6ff"text-xs font-medium text-red-800 dark:text-red-200"
Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72pre
Te6edf3idTff7b72=Ta5d6ff"startup-diagnosis-log"
Te6edf3classTff7b72=Ta5d6ff"mt-2 max-h-36 overflow-auto rounded-lg border border-red-200/60 bg-white/80 p-2 font-mono text-[10px] text-red-900 dark:border-red-900/40 dark:bg-zinc-950 dark:text-red-300"
Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72preTb4b4b4>
Tb4b4b4<Tff7b72p
Te6edf3idTff7b72=Ta5d6ff"startup-log-path"
Te6edf3classTff7b72=Ta5d6ff"mt-2 break-all text-[10px] text-red-700 dark:text-red-300"
Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"mt-3 flex flex-wrap justify-center gap-2"Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3idTff7b72=Ta5d6ff"btn-view-crash-report"
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"rounded-lg bg-blue-600 px-3 py-1.5 text-[11px] font-semibold text-white hover:bg-blue-500"
Tb4b4b4>
View full report
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3idTff7b72=Ta5d6ff"btn-open-logs"
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"rounded-lg border border-red-300 bg-white px-3 py-1.5 text-[11px] font-semibold text-red-800 hover:bg-red-100 dark:border-red-800 dark:bg-zinc-900 dark:text-red-200 dark:hover:bg-zinc-800"
Tb4b4b4>
Open logs folder
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3idTff7b72=Ta5d6ff"btn-restart-backend"
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"rounded-lg border border-red-300 bg-white px-3 py-1.5 text-[11px] font-semibold text-red-800 hover:bg-red-100 dark:border-red-800 dark:bg-zinc-900 dark:text-red-200 dark:hover:bg-zinc-800"
Tb4b4b4>
Retry backend
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3idTff7b72=Ta5d6ff"btn-emergency-relaunch"
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"rounded-lg border border-red-300 bg-white px-3 py-1.5 text-[11px] font-semibold text-red-800 hover:bg-red-100 dark:border-red-800 dark:bg-zinc-900 dark:text-red-200 dark:hover:bg-zinc-800"
Tb4b4b4>
Emergency mode
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72p Te6edf3classTff7b72=Ta5d6ff"mt-4 text-center text-[11px] text-slate-400 dark:text-zinc-600" Te6edf3idTff7b72=Ta5d6ff"app-version"Tb4b4b4>
v0.0.0
Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72mainTb4b4b4>
Tb4b4b4<Tff7b72script Te6edf3srcTff7b72=Ta5d6ff"./loadingStatusNotice.js"Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72scriptTb4b4b4>
Tb4b4b4<Tff7b72script Te6edf3srcTff7b72=Ta5d6ff"./loadingStatusProbe.js"Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72scriptTb4b4b4>
Tb4b4b4<Tff7b72scriptTb4b4b4>
Tff7b72const Te6edf3statusLine Tff7b72= Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff"status-line"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3attemptHint Tff7b72= Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff"attempt-hint"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3connectionNotice Tff7b72= Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff"connection-notice"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3startupDiagnostics Tff7b72= Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff"startup-diagnostics"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3startupDiagnosisSummary Tff7b72= Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff"startup-diagnosis-summary"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3startupDiagnosisLog Tff7b72= Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff"startup-diagnosis-log"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3startupLogPath Tff7b72= Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff"startup-log-path"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3btnViewCrashReport Tff7b72= Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff"btn-view-crash-report"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3btnOpenLogs Tff7b72= Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff"btn-open-logs"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3btnRestartBackend Tff7b72= Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff"btn-restart-backend"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3btnEmergencyRelaunch Tff7b72= Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff"btn-emergency-relaunch"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3API_HOST Tff7b72= Ta5d6ff"127.0.0.1"Tb4b4b4;
Tff7b72const Te6edf3API_PORT Tff7b72= Ta5d6ff"9337"Tb4b4b4;
Tff7b72const Te6edf3base Tff7b72= Tb4b4b4(Te6edf3protocolTb4b4b4) Tb4b4b4=> Ta5d6ff`Tffd700${Te6edf3protocolTffd700}Ta5d6ff://Tffd700${Te6edf3API_HOSTTffd700}Ta5d6ff:Tffd700${Te6edf3API_PORTTffd700}Ta5d6ff`Tb4b4b4;
Tff7b72const Te6edf3startupParams Tff7b72= Tff7b72new Te6edf3URLSearchParamsTb4b4b4(Tffa657windowTb4b4b4.Te6edf3locationTb4b4b4.Te6edf3searchTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3NOTICE_AFTER_ATTEMPTS Tff7b72= T79c0ff10Tb4b4b4;
Tff7b72const Te6edf3NETWORK_WARNING_AFTER_ATTEMPTS Tff7b72= T79c0ff24Tb4b4b4;
Tff7b72const Te6edf3RUNTIME_RECHECK_INTERVAL Tff7b72= T79c0ff4Tb4b4b4;
Tff7b72const Te6edf3MAX_FAILURE_HISTORY Tff7b72= T79c0ff8Tb4b4b4;
Tff7b72let Te6edf3protocolOrder Tff7b72= Tb4b4b4[Ta5d6ff"https"Tb4b4b4, Ta5d6ff"http"Tb4b4b4]Tb4b4b4;
Te6edf3applyThemeTb4b4b4(Te6edf3detectPreferredThemeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3showAppVersionTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3listenForSystemThemeChangesTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4(Tff7b72async Tff7b72function Te6edf3bootstrapTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3applyStartupErrorHintTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3wireStartupActionsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tffa657windowTb4b4b4.Te6edf3electron Tff7b72&& Tff7b72typeof Tffa657windowTb4b4b4.Te6edf3electronTb4b4b4.Te6edf3onBackendStartupFailed Tff7b72=== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
Tffa657windowTb4b4b4.Te6edf3electronTb4b4b4.Te6edf3onBackendStartupFailedTb4b4b4(Tb4b4b4(Te6edf3payloadTb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3handleStartupFailureTb4b4b4(Te6edf3payloadTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72try Tb4b4b4{
Tff7b72if Tb4b4b4(Tffa657windowTb4b4b4.Te6edf3electron Tff7b72&& Tff7b72typeof Tffa657windowTb4b4b4.Te6edf3electronTb4b4b4.Te6edf3backendStartupDiagnostics Tff7b72=== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
Te6edf3cachedDiagnostics Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3electronTb4b4b4.Te6edf3backendStartupDiagnosticsTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3cachedCrash Tff7b72= Te6edf3cachedDiagnosticsTff7b72?Tb4b4b4.Te6edf3crash Tff7b72|| Tff7b72nullTb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{Tb4b4b4}
Tff7b72try Tb4b4b4{
Tff7b72if Tb4b4b4(Tffa657windowTb4b4b4.Te6edf3electron Tff7b72&& Tff7b72typeof Tffa657windowTb4b4b4.Te6edf3electronTb4b4b4.Te6edf3backendHttpOnly Tff7b72=== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3httpOnly Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3electronTb4b4b4.Te6edf3backendHttpOnlyTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3httpOnlyTb4b4b4) Tb4b4b4{
Te6edf3protocolOrder Tff7b72= Tb4b4b4[Ta5d6ff"http"Tb4b4b4, Ta5d6ff"https"Tb4b4b4]Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{Tb4b4b4}
Te6edf3checkTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72function Te6edf3wireStartupActionsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3btnViewCrashReportTb4b4b4) Tb4b4b4{
Te6edf3btnViewCrashReportTb4b4b4.Te6edf3addEventListenerTb4b4b4(Ta5d6ff"click"Tb4b4b4, Tff7b72async Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tffa657windowTb4b4b4.Te6edf3electronTff7b72?Tb4b4b4.Te6edf3openBackendCrashReportTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72await Tffa657windowTb4b4b4.Te6edf3electronTb4b4b4.Te6edf3openBackendCrashReportTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3btnOpenLogsTb4b4b4) Tb4b4b4{
Te6edf3btnOpenLogsTb4b4b4.Te6edf3addEventListenerTb4b4b4(Ta5d6ff"click"Tb4b4b4, Tff7b72async Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3logsDir Tff7b72= Te6edf3cachedDiagnosticsTff7b72?Tb4b4b4.Te6edf3pathsTff7b72?Tb4b4b4.Te6edf3logsDirTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3logsDir Tff7b72|| Tff7b72!Tffa657windowTb4b4b4.Te6edf3electronTff7b72?Tb4b4b4.Te6edf3openPathTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72await Tffa657windowTb4b4b4.Te6edf3electronTb4b4b4.Te6edf3openPathTb4b4b4(Te6edf3logsDirTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3btnRestartBackendTb4b4b4) Tb4b4b4{
Te6edf3btnRestartBackendTb4b4b4.Te6edf3addEventListenerTb4b4b4(Ta5d6ff"click"Tb4b4b4, Tff7b72async Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tffa657windowTb4b4b4.Te6edf3electronTff7b72?Tb4b4b4.Te6edf3restartBackendTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3startupFailed Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3startupDiagnosticsTb4b4b4) Tb4b4b4{
Te6edf3startupDiagnosticsTb4b4b4.Te6edf3classListTb4b4b4.Te6edf3addTb4b4b4(Ta5d6ff"hidden"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3statusLineTb4b4b4.Te6edf3textContent Tff7b72= Ta5d6ff"Retrying backend startup…"Tb4b4b4;
Te6edf3connectionNoticeTb4b4b4.Te6edf3textContent Tff7b72= Ta5d6ff""Tb4b4b4;
Tff7b72const Te6edf3result Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3electronTb4b4b4.Te6edf3restartBackendTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3resultTff7b72?Tb4b4b4.Te6edf3okTb4b4b4) Tb4b4b4{
Te6edf3connectionNoticeTb4b4b4.Te6edf3textContent Tff7b72= Te6edf3resultTff7b72?Tb4b4b4.Te6edf3error Tff7b72|| Ta5d6ff"Backend restart failed."Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3attemptCount Tff7b72= T79c0ff0Tb4b4b4;
Te6edf3recentFailuresTb4b4b4.Te6edf3length Tff7b72= T79c0ff0Tb4b4b4;
Te6edf3scheduleCheckTb4b4b4(T79c0ff250Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3btnEmergencyRelaunchTb4b4b4) Tb4b4b4{
Te6edf3btnEmergencyRelaunchTb4b4b4.Te6edf3addEventListenerTb4b4b4(Ta5d6ff"click"Tb4b4b4, Tff7b72async Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tffa657windowTb4b4b4.Te6edf3electronTff7b72?Tb4b4b4.Te6edf3relaunchEmergencyTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72await Tffa657windowTb4b4b4.Te6edf3electronTb4b4b4.Te6edf3relaunchEmergencyTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72function Te6edf3scheduleCheckTb4b4b4(Te6edf3delayMsTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3pollTimer Tff7b72!= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3clearTimeoutTb4b4b4(Te6edf3pollTimerTb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3pollTimer Tff7b72= Te6edf3setTimeoutTb4b4b4(Te6edf3checkTb4b4b4, Te6edf3delayMsTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3formatCrashExcerptTb4b4b4(Te6edf3crashTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3crash Tff7b72|| Tff7b72typeof Te6edf3crash Tff7b72!== Ta5d6ff"object"Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"No backend output was captured."Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3stderr Tff7b72= Tb4b4b4(Te6edf3crashTb4b4b4.Te6edf3stderr Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3stdout Tff7b72= Tb4b4b4(Te6edf3crashTb4b4b4.Te6edf3stdout Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3chunk Tff7b72= Te6edf3stderr Tff7b72|| Te6edf3stdoutTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3chunkTb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"No backend output was captured."Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3chunkTb4b4b4.Te6edf3length Tff7b72<= T79c0ff1800Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3chunkTb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3chunkTb4b4b4.Te6edf3sliceTb4b4b4(Tff7b72-T79c0ff1800Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3showStartupDiagnosticsTb4b4b4(Te6edf3issueTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3startupDiagnostics Tff7b72|| Tff7b72!Te6edf3issueTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3startupDiagnosticsTb4b4b4.Te6edf3classListTb4b4b4.Te6edf3removeTb4b4b4(Ta5d6ff"hidden"Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3startupDiagnosisSummaryTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3codeText Tff7b72= Te6edf3issueTb4b4b4.Te6edf3exitCode Tff7b72!= Tff7b72null Tff7b72? Ta5d6ff`Ta5d6ffExit code Tffd700${Te6edf3issueTb4b4b4.Te6edf3exitCodeTffd700}Ta5d6ff. Ta5d6ff` Tff7b72: Ta5d6ff""Tb4b4b4;
Te6edf3startupDiagnosisSummaryTb4b4b4.Te6edf3textContent Tff7b72= Ta5d6ff`Tffd700${Te6edf3codeTextTffd700}Tffd700${Te6edf3issueTb4b4b4.Te6edf3detail Tff7b72|| Te6edf3issueTb4b4b4.Te6edf3headline Tff7b72|| Ta5d6ff""Tffd700}Ta5d6ff`Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3startupDiagnosisLogTb4b4b4) Tb4b4b4{
Te6edf3startupDiagnosisLogTb4b4b4.Te6edf3textContent Tff7b72= Te6edf3formatCrashExcerptTb4b4b4(Te6edf3issueTb4b4b4.Te6edf3crash Tff7b72|| Te6edf3cachedCrashTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3startupLogPathTb4b4b4) Tb4b4b4{
Te6edf3startupLogPathTb4b4b4.Te6edf3textContent Tff7b72= Te6edf3issueTb4b4b4.Te6edf3logHint Tff7b72|| Ta5d6ff""Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72function Te6edf3handleStartupFailureTb4b4b4(Te6edf3payloadTb4b4b4) Tb4b4b4{
Te6edf3startupFailed Tff7b72= Tff7b72trueTb4b4b4;
Te6edf3cachedCrash Tff7b72= Te6edf3payload Tff7b72|| Te6edf3cachedCrashTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3pollTimer Tff7b72!= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3clearTimeoutTb4b4b4(Te6edf3pollTimerTb4b4b4)Tb4b4b4;
Te6edf3pollTimer Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Te6edf3updateStartupNoticeTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3applyStartupErrorHintTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3startupError Tff7b72= Te6edf3startupParamsTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff"startup_error"Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3startupError Tff7b72!== Ta5d6ff"backend_unreachable"Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3statusLineTb4b4b4.Te6edf3textContent Tff7b72= Ta5d6ff"Lost connection to local backend."Tb4b4b4;
Te6edf3connectionNoticeTb4b4b4.Te6edf3textContent Tff7b72=
Ta5d6ff"Still retrying. If this continues, firewall or localhost filtering may be blocking access."Tb4b4b4;
Tb4b4b4}
Tff7b72async Tff7b72function Te6edf3showAppVersionTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3appVersion Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3electronTb4b4b4.Te6edf3appVersionTb4b4b4(Tb4b4b4)Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff"app-version"Tb4b4b4)Tb4b4b4.Te6edf3innerText Tff7b72= Ta5d6ff"v" Tff7b72+ Te6edf3appVersionTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{Tb4b4b4}
Tb4b4b4}
Tff7b72function Te6edf3detectPreferredThemeTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3storedTheme Tff7b72=
Te6edf3localStorageTb4b4b4.Te6edf3getItemTb4b4b4(Ta5d6ff"meshchat.theme"Tb4b4b4) Tff7b72|| Te6edf3localStorageTb4b4b4.Te6edf3getItemTb4b4b4(Ta5d6ff"meshchatx.theme"Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3storedTheme Tff7b72=== Ta5d6ff"dark" Tff7b72|| Te6edf3storedTheme Tff7b72=== Ta5d6ff"light"Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3storedThemeTb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{Tb4b4b4}
Tff7b72return Tffa657windowTb4b4b4.Te6edf3matchMedia Tff7b72&& Tffa657windowTb4b4b4.Te6edf3matchMediaTb4b4b4(Ta5d6ff"(prefers-color-scheme: dark)"Tb4b4b4)Tb4b4b4.Te6edf3matches
Tff7b72? Ta5d6ff"dark"
Tff7b72: Ta5d6ff"light"Tb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3applyThemeTb4b4b4(Te6edf3themeTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3isDark Tff7b72= Te6edf3theme Tff7b72=== Ta5d6ff"dark"Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3documentElementTb4b4b4.Te6edf3classListTb4b4b4.Te6edf3toggleTb4b4b4(Ta5d6ff"dark"Tb4b4b4, Te6edf3isDarkTb4b4b4)Tb4b4b4;
Tffa657documentTb4b4b4.Te6edf3bodyTb4b4b4.Te6edf3datasetTb4b4b4.Te6edf3theme Tff7b72= Te6edf3isDark Tff7b72? Ta5d6ff"dark" Tff7b72: Ta5d6ff"light"Tb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3listenForSystemThemeChangesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tffa657windowTb4b4b4.Te6edf3matchMediaTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3media Tff7b72= Tffa657windowTb4b4b4.Te6edf3matchMediaTb4b4b4(Ta5d6ff"(prefers-color-scheme: dark)"Tb4b4b4)Tb4b4b4;
Te6edf3mediaTb4b4b4.Te6edf3addEventListenerTb4b4b4(Ta5d6ff"change"Tb4b4b4, Tb4b4b4(Te6edf3eventTb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3applyThemeTb4b4b4(Te6edf3eventTb4b4b4.Te6edf3matches Tff7b72? Ta5d6ff"dark" Tff7b72: Ta5d6ff"light"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72let Te6edf3detectedProtocol Tff7b72= Ta5d6ff"http"Tb4b4b4;
Tff7b72let Te6edf3attemptCount Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72let Te6edf3runtimeProbeAttempt Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72let Te6edf3cachedRuntimeState Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72let Te6edf3cachedDiagnostics Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72let Te6edf3cachedCrash Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72let Te6edf3startupFailed Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72let Te6edf3pollTimer Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72const Te6edf3recentFailures Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72function Te6edf3parseStatusJsonTb4b4b4(Te6edf3textTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3helper Tff7b72= Tffa657windowTb4b4b4.Te6edf3MeshchatLoadingStatusProbeTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3helper Tff7b72&& Tff7b72typeof Te6edf3helperTb4b4b4.Te6edf3parseStatusJson Tff7b72=== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3helperTb4b4b4.Te6edf3parseStatusJsonTb4b4b4(Te6edf3textTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72try Tb4b4b4{
Tff7b72return Tffa657JSONTb4b4b4.Te6edf3parseTb4b4b4(Te6edf3textTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72nullTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72function Te6edf3evaluateStatusResponseTb4b4b4(Te6edf3httpStatusTb4b4b4, Te6edf3bodyTextTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3helper Tff7b72= Tffa657windowTb4b4b4.Te6edf3MeshchatLoadingStatusProbeTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3helper Tff7b72&& Tff7b72typeof Te6edf3helperTb4b4b4.Te6edf3evaluateStatusResponse Tff7b72=== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3helperTb4b4b4.Te6edf3evaluateStatusResponseTb4b4b4(Te6edf3httpStatusTb4b4b4, Te6edf3bodyTextTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tffa657NumberTb4b4b4(Te6edf3httpStatusTb4b4b4) Tff7b72!== T79c0ff200Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4{
Te6edf3okTff7b72: Tff7b72falseTb4b4b4,
Te6edf3failureTff7b72: Tb4b4b4{ Te6edf3kindTff7b72: Ta5d6ff"http-error"Tb4b4b4, Te6edf3statusTff7b72: Tffa657NumberTb4b4b4(Te6edf3httpStatusTb4b4b4) Tff7b72|| T79c0ff0 Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3data Tff7b72= Te6edf3parseStatusJsonTb4b4b4(Te6edf3bodyTextTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3data Tff7b72&& Tb4b4b4(Te6edf3dataTb4b4b4.Te6edf3status Tff7b72=== Ta5d6ff"ok" Tff7b72|| Te6edf3dataTb4b4b4.Te6edf3status Tff7b72=== Ta5d6ff"starting"Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4{
Te6edf3okTff7b72: Tff7b72trueTb4b4b4,
Te6edf3stageTff7b72: Te6edf3dataTb4b4b4.Te6edf3stage Tff7b72|| Te6edf3dataTb4b4b4.Te6edf3statusTb4b4b4,
Te6edf3networkReadyTff7b72: Tff7b72!Tff7b72!Te6edf3dataTb4b4b4.Te6edf3network_readyTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tff7b72return Tb4b4b4{ Te6edf3okTff7b72: Tff7b72falseTb4b4b4, Te6edf3failureTff7b72: Tb4b4b4{ Te6edf3kindTff7b72: Ta5d6ff"invalid-payload" Tb4b4b4} Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3rememberFailureTb4b4b4(Te6edf3failureTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3failure Tff7b72|| Tff7b72typeof Te6edf3failure Tff7b72!== Ta5d6ff"object"Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3recentFailuresTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3failureTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3recentFailuresTb4b4b4.Te6edf3length Tff7b72> Te6edf3MAX_FAILURE_HISTORYTb4b4b4) Tb4b4b4{
Te6edf3recentFailuresTb4b4b4.Te6edf3shiftTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72async Tff7b72function Te6edf3refreshBackendRuntimeStateIfNeededTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tffa657windowTb4b4b4.Te6edf3electron Tff7b72|| Tff7b72typeof Tffa657windowTb4b4b4.Te6edf3electronTb4b4b4.Te6edf3backendRuntimeState Tff7b72!== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3attemptCount Tff7b72- Te6edf3runtimeProbeAttempt Tff7b72< Te6edf3RUNTIME_RECHECK_INTERVAL Tff7b72&& Te6edf3cachedRuntimeStateTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3runtimeProbeAttempt Tff7b72= Te6edf3attemptCountTb4b4b4;
Tff7b72try Tb4b4b4{
Te6edf3cachedRuntimeState Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3electronTb4b4b4.Te6edf3backendRuntimeStateTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{Tb4b4b4}
Tb4b4b4}
Tff7b72function Te6edf3resolveFetchFailureKindTb4b4b4(Te6edf3errorTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3helper Tff7b72= Tffa657windowTb4b4b4.Te6edf3MeshchatLoadingStatusNoticeTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3helper Tff7b72&& Tff7b72typeof Te6edf3helperTb4b4b4.Te6edf3classifyFetchError Tff7b72=== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3helperTb4b4b4.Te6edf3classifyFetchErrorTb4b4b4(Te6edf3errorTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Ta5d6ff"network-error"Tb4b4b4;
Tb4b4b4}
Tff7b72async Tff7b72function Te6edf3tryOnceTb4b4b4(Te6edf3protocolTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3url Tff7b72= Ta5d6ff`Tffd700${Te6edf3baseTb4b4b4(Te6edf3protocolTb4b4b4)Tffd700}Ta5d6ff/api/v1/statusTa5d6ff`Tb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3result Tff7b72= Tff7b72await Te6edf3fetchTb4b4b4(Te6edf3urlTb4b4b4, Tb4b4b4{ Te6edf3cacheTff7b72: Ta5d6ff"no-store" Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3text Tff7b72= Tff7b72await Te6edf3resultTb4b4b4.Te6edf3textTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3evaluated Tff7b72= Te6edf3evaluateStatusResponseTb4b4b4(Te6edf3resultTb4b4b4.Te6edf3statusTb4b4b4, Te6edf3textTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3evaluatedTb4b4b4.Te6edf3okTb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4{
Te6edf3okTff7b72: Tff7b72trueTb4b4b4,
Te6edf3protocolTff7b72: Te6edf3protocolTb4b4b4,
Te6edf3stageTff7b72: Te6edf3evaluatedTb4b4b4.Te6edf3stageTb4b4b4,
Te6edf3networkReadyTff7b72: Te6edf3evaluatedTb4b4b4.Te6edf3networkReadyTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3failure Tff7b72= Te6edf3evaluatedTb4b4b4.Te6edf3failure Tff7b72|| Tb4b4b4{ Te6edf3kindTff7b72: Ta5d6ff"invalid-payload" Tb4b4b4}Tb4b4b4;
Tff7b72return Tb4b4b4{
Te6edf3okTff7b72: Tff7b72falseTb4b4b4,
Te6edf3failureTff7b72: Tb4b4b4{ Tb4b4b4...Te6edf3failureTb4b4b4, Te6edf3protocolTff7b72: Te6edf3protocol Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3errorTb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4{
Te6edf3okTff7b72: Tff7b72falseTb4b4b4,
Te6edf3failureTff7b72: Tb4b4b4{
Te6edf3kindTff7b72: Te6edf3resolveFetchFailureKindTb4b4b4(Te6edf3errorTb4b4b4)Tb4b4b4,
Te6edf3protocolTff7b72: Te6edf3protocolTb4b4b4,
Te6edf3messageTff7b72: Tffa657StringTb4b4b4(Tb4b4b4(Te6edf3error Tff7b72&& Te6edf3errorTb4b4b4.Te6edf3messageTb4b4b4) Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72function Te6edf3classifyConnectionIssueTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3helper Tff7b72= Tffa657windowTb4b4b4.Te6edf3MeshchatLoadingStatusNoticeTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3helper Tff7b72&& Tff7b72typeof Te6edf3helperTb4b4b4.Te6edf3classifyConnectionIssue Tff7b72=== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3helperTb4b4b4.Te6edf3classifyConnectionIssueTb4b4b4(Te6edf3recentFailuresTb4b4b4, Te6edf3cachedRuntimeStateTb4b4b4, Tb4b4b4{
Te6edf3attemptCountTff7b72: Te6edf3attemptCountTb4b4b4,
Te6edf3networkWarnAfterAttemptsTff7b72: Te6edf3NETWORK_WARNING_AFTER_ATTEMPTSTb4b4b4,
Te6edf3crashTff7b72: Te6edf3cachedCrashTb4b4b4,
Te6edf3pathsTff7b72: Te6edf3cachedDiagnosticsTff7b72?Tb4b4b4.Te6edf3paths Tff7b72|| Tff7b72nullTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Tb4b4b4{
Te6edf3reasonTff7b72: Ta5d6ff"starting"Tb4b4b4,
Te6edf3headlineTff7b72: Ta5d6ff"Waiting for backend startup."Tb4b4b4,
Te6edf3detailTff7b72: Ta5d6ff"MeshChatX is still initializing services."Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tff7b72async Tff7b72function Te6edf3updateStartupNoticeTb4b4b4(Te6edf3forceDiagnosticsTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3startupFailed Tff7b72|| Te6edf3forceDiagnosticsTb4b4b4) Tb4b4b4{
Tff7b72await Te6edf3refreshBackendRuntimeStateIfNeededTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3issue Tff7b72= Te6edf3classifyConnectionIssueTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3statusLineTb4b4b4.Te6edf3textContent Tff7b72= Te6edf3issueTb4b4b4.Te6edf3headlineTb4b4b4;
Te6edf3connectionNoticeTb4b4b4.Te6edf3textContent Tff7b72= Te6edf3issueTb4b4b4.Te6edf3detailTb4b4b4;
Te6edf3showStartupDiagnosticsTb4b4b4(Te6edf3issueTb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3attemptCount Tff7b72< Te6edf3NOTICE_AFTER_ATTEMPTSTb4b4b4) Tb4b4b4{
Te6edf3connectionNoticeTb4b4b4.Te6edf3textContent Tff7b72= Ta5d6ff""Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3startupDiagnosticsTb4b4b4) Tb4b4b4{
Te6edf3startupDiagnosticsTb4b4b4.Te6edf3classListTb4b4b4.Te6edf3addTb4b4b4(Ta5d6ff"hidden"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72await Te6edf3refreshBackendRuntimeStateIfNeededTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3issue Tff7b72= Te6edf3classifyConnectionIssueTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3statusLineTb4b4b4.Te6edf3textContent Tff7b72= Te6edf3issueTb4b4b4.Te6edf3headlineTb4b4b4;
Te6edf3connectionNoticeTb4b4b4.Te6edf3textContent Tff7b72= Te6edf3issueTb4b4b4.Te6edf3detailTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3issueTb4b4b4.Te6edf3reason Tff7b72=== Ta5d6ff"backend-exited"Tb4b4b4) Tb4b4b4{
Te6edf3startupFailed Tff7b72= Tff7b72trueTb4b4b4;
Te6edf3showStartupDiagnosticsTb4b4b4(Te6edf3issueTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72async Tff7b72function Te6edf3checkTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3startupFailedTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3attemptCount Tff7b72+= T79c0ff1Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3attemptCount Tff7b72=== T79c0ff1Tb4b4b4) Tb4b4b4{
Te6edf3attemptHintTb4b4b4.Te6edf3textContent Tff7b72= Ta5d6ff""Tb4b4b4;
Te6edf3connectionNoticeTb4b4b4.Te6edf3textContent Tff7b72= Ta5d6ff""Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3attemptHintTb4b4b4.Te6edf3textContent Tff7b72= Ta5d6ff"Still starting…"Tb4b4b4;
Tb4b4b4}
T8b949e// Prefer HTTPS unless the backend was started with --no-https (then HTTP first).
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3protocol Tff7b72of Te6edf3protocolOrderTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3result Tff7b72= Tff7b72await Te6edf3tryOnceTb4b4b4(Te6edf3protocolTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3resultTb4b4b4.Te6edf3okTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tffa657windowTb4b4b4.Te6edf3electron Tff7b72&& Tff7b72typeof Tffa657windowTb4b4b4.Te6edf3electronTb4b4b4.Te6edf3markBackendHealthy Tff7b72=== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72await Tffa657windowTb4b4b4.Te6edf3electronTb4b4b4.Te6edf3markBackendHealthyTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{Tb4b4b4}
Tb4b4b4}
Te6edf3detectedProtocol Tff7b72= Te6edf3resultTb4b4b4.Te6edf3protocolTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3resultTb4b4b4.Te6edf3networkReadyTb4b4b4) Tb4b4b4{
Te6edf3statusLineTb4b4b4.Te6edf3textContent Tff7b72= Ta5d6ff"Opening the app…"Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3statusLineTb4b4b4.Te6edf3textContent Tff7b72= Ta5d6ff"Opening the app (network still starting)…"Tb4b4b4;
Tb4b4b4}
Te6edf3attemptHintTb4b4b4.Te6edf3textContent Tff7b72= Ta5d6ff""Tb4b4b4;
Te6edf3connectionNoticeTb4b4b4.Te6edf3textContent Tff7b72= Ta5d6ff""Tb4b4b4;
T8b949e// Theme/config may 503 until identity is ready; ignore failures.
Te6edf3syncThemeFromConfigTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3setTimeoutTb4b4b4(Te6edf3onReadyTb4b4b4, T79c0ff200Tb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3resultTb4b4b4.Te6edf3failureTb4b4b4) Tb4b4b4{
Te6edf3rememberFailureTb4b4b4(Te6edf3resultTb4b4b4.Te6edf3failureTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72await Te6edf3updateStartupNoticeTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Te6edf3scheduleCheckTb4b4b4(T79c0ff350Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3onReadyTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3timestamp Tff7b72= Tff7b72new Tffa657DateTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3getTimeTb4b4b4(Tb4b4b4)Tb4b4b4;
Tffa657windowTb4b4b4.Te6edf3locationTb4b4b4.Te6edf3href Tff7b72= Ta5d6ff`Tffd700${Te6edf3detectedProtocolTffd700}Ta5d6ff://Tffd700${Te6edf3API_HOSTTffd700}Ta5d6ff:Tffd700${Te6edf3API_PORTTffd700}Ta5d6ff/?nocache=Tffd700${Te6edf3timestampTffd700}Ta5d6ff`Tb4b4b4;
Tb4b4b4}
Tff7b72async Tff7b72function Te6edf3syncThemeFromConfigTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Te6edf3fetchTb4b4b4(Ta5d6ff`Tffd700${Te6edf3detectedProtocolTffd700}Ta5d6ff://Tffd700${Te6edf3API_HOSTTffd700}Ta5d6ff:Tffd700${Te6edf3API_PORTTffd700}Ta5d6ff/api/v1/configTa5d6ff`Tb4b4b4, Tb4b4b4{
Te6edf3cacheTff7b72: Ta5d6ff"no-store"Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3responseTb4b4b4.Te6edf3okTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3body Tff7b72= Tff7b72await Te6edf3responseTb4b4b4.Te6edf3jsonTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3cfg Tff7b72= Te6edf3body Tff7b72&& Te6edf3bodyTb4b4b4.Te6edf3config Tff7b72? Te6edf3bodyTb4b4b4.Te6edf3config Tff7b72: Te6edf3bodyTb4b4b4;
Tff7b72const Te6edf3theme Tff7b72= Te6edf3cfg Tff7b72&& Te6edf3cfgTb4b4b4.Te6edf3themeTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3theme Tff7b72=== Ta5d6ff"dark" Tff7b72|| Te6edf3theme Tff7b72=== Ta5d6ff"light"Tb4b4b4) Tb4b4b4{
Te6edf3applyThemeTb4b4b4(Te6edf3themeTb4b4b4)Tb4b4b4;
Tff7b72try Tb4b4b4{
Te6edf3localStorageTb4b4b4.Te6edf3setItemTb4b4b4(Ta5d6ff"meshchat.theme"Tb4b4b4, Te6edf3themeTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{Tb4b4b4}
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{Tb4b4b4}
Tb4b4b4}
Tb4b4b4<Tb4b4b4/Tff7b72scriptTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72bodyTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72htmlTb4b4b4>
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────